import React from 'react';

class ErrorBoundary extends React.Component {
   constructor(props) {
      super(props);
      this.state = { hasError: false };
   }
   static getDerivedStateFromError(error) {
      // 更新状态以便下一个渲染可以显示降级UI  
      return { hasError: true };
   }

   componentDidCatch(error, errorInfo) {
      // 你可以将错误日志记录到服务端  
      console.error("错误边界捕获到错误：", error, errorInfo);
   }

   render() {
      if (this.state.hasError) {
         // 发生错误时渲染的降级UI  
         return <h1>发生错误，请稍后再试。</h1>;
      }

      // 渲染包装的子组件  
      return this.props.children;
   }
}

export default ErrorBoundary;